using System.Data.Entity.ModelConfiguration;
using InseSoft.Models.Entities;

namespace InseSoft.Models.Mapping
{
    public class OrdenMap : EntityTypeConfiguration<Orden>
    {
        public OrdenMap()
        {
            // Primary Key
            HasKey(t => t.Id);

            // Properties
            Property(t => t.NumPedido)
                .HasMaxLength(20);

            // Table & Column Mappings
            ToTable("Orden");
            Property(t => t.Id).HasColumnName("Id");
            Property(t => t.NumPedido).HasColumnName("NumPedido");
            Property(t => t.CotizacionId).HasColumnName("CotizacionId");
            Property(t => t.FecInicio).HasColumnName("FecInicio");
            Property(t => t.FecFinal).HasColumnName("FecFinal");
            Property(t => t.EmpresaId).HasColumnName("EmpresaId");

            // Relationships
            HasOptional(t => t.Cotizacion)
                .WithMany(t => t.Ordenes)
                .HasForeignKey(d => d.CotizacionId);
            HasRequired(t => t.Empresa)
                .WithMany(t => t.Ordenes)
                .HasForeignKey(d => d.EmpresaId);

        }
    }
}
